var express = require('express')

//引入mongoose 数据库设计的数据结构
var User = require('./models/user')
var router = express.Router()

//渲染首页
router.get('/', function (req, res) {
    res.render('index.html')
})

//处理登陆请求
router.get('/login', function (req, res) {
    res.render('login.html')
})
router.post('/login', function (req, res) {
    //1. 获取登陆信息
    //2. 拿到登陆信息和数据库数据对比是否有这个 账号
    //3. 登陆成功 跳到首页
    var body = req.body
    User.findOne({
        email: body.email,
        nickname: body.nickname
    }, function (err, data) {
        if (err) {
            return res.status(500).json({
                err_code: 500,
                message: err.message
            })
        }

        //如果邮箱和密码匹配，提示去注册 这里的data 是拿到的email， nickname
        if (!data) {
            return res.status(200).json({
                err_code: 1,
                message: 'Email or password is invalid.'
            })
        }

        //用户存在，跳转到首页，用session 记住登陆信息
        req.session.user = data  //将登陆信息设置给user，后面可利用登陆信息操作推出功能

        //登陆成功
        return res.status(200).json({
            err_code: 0,
            message: 'Ok'
        })

    })
})

//处理注册请求
router.get('/register', function (req, res) {
    res.render('register.html')
})

router.post('/register', function (req, res) {
    // 1. 拿到提交的是数据 console.log(req.body)
    // 2. 操作数据库(存到数据库里)
    // + 判断用户是否存在，如果已存在，不允许注册，否则就注册
    // 3. 发送响应 跳到首页
    var body = req.body
    User.findOne({
        $or: [
            { email: body.email }, { nickname: body.nickname }
        ]
    }, function (err, data) {
        if (err) {
            res.status(500).send('Server err...')
        }
        //账户或者密码已经存在
        if (data) {
            return res.status(200).json({
                err_code: 1,
                message: '账户或者昵称已经存在'
            })

            return res.send(`邮箱或者昵称已存在，请重试`)
        }

        //如若不存在注册成功，即将注册信息保存
        new User(body).save(function (err, data) {
            if (err) {
                return res.status(500).json({
                    err_code: 500,
                    message: '服务器忙'
                })
            }

            //用session 记录登陆信息
            req.session.user = data

            res.status(200).json({
                err_code: 0,
                message: 'OK'
            })

            // 服务端重定向只针对同步请求才有效，异步请求无效
            // res.redirect('/')
        })


    })

})

module.exports = router